--[[
	委托
--]]

function Functor(func, ...)
	-- 委托对象
	local object = {}
	-- 保存func
	object._func = func
	-- 保存参数列表
	object._arg = arg
	-- 委托对象的metatable
	local mt = {}
	setmetatable(object, mt)
	-- 设置call函数。这样创建类实例对象时，可以使用A()这样的书写方式。
	mt.__call = function (caller)
		-- 执行函数
		object._func(unpack(object._arg))
	end
	-- 返回委托对象
	return object
end
